
/**
 * 尊敬的用户，你好：页面 JS 面板是高阶用法，一般不建议普通用户使用，如需使用，请确定你具备研发背景，能够自我排查问题。
 * 我们可以用 JS 面板来开发一些定制度高功能，比如：调用API接口，自定义动作执行等等。
 */

// 当页面渲染完毕后马上调用下面的函数，这个函数是在当前页面 - 设置 - 生命周期 - 页面加载完成时中被关联的。
export function didMount() {
    ("「页面 JS」：当前页面地址 " + location.href);
}
export function humanTypeChange() {
    const self = this;
    const typeIdToNameMap = {
        '1': '执法人员',
        '2': '监督人员',
        '3': '法制审核人员'
    };
    const selected = self.cValue;
    const selectedTypeNames = selected
        .map(id => typeIdToNameMap[id])
        .filter(Boolean); // 过滤掉无效映射
    updateFieldVisibilityByTypes(self, selectedTypeNames);
}

function updateFieldVisibilityByTypes(self, selectedTypes) {

    // 字段到组件 ID 映射
    const fieldComponentMap = {
        "执法人员信息": "text_4jiv22",
        "执法证号": "text_input_9cvy3q",
        "证件有效期起": "date_picker_a98b0v",
        "证件有效期至": "date_picker_ana4zw",
        "监督/法核人员信息": "text_7xg0iy",
        "监督证号": "text_input_a3tlsx",
        "监督证件有效期起": "date_picker_53377w",
        "监督证件有效期至": "date_picker_ga2mcc",
        "是否法学专业": "radio_89jidl",
        "是否专职人员": "radio_8k47jj",
        "法律职业资格证书": "radio_gpqgl8",
        "是否公职律师": "radio_6z2vxm"
    };
    // 类型对应字段
    const orgFieldMap = {
        "执法人员": ["执法人员信息", "执法证号", "证件有效期起", "证件有效期至"],
        "监督人员": ["监督/法核人员信息", "监督证号", "监督证件有效期起", "监督证件有效期至", "是否法学专业","是否专职人员","法律职业资格证书","是否公职律师"],
        "法制审核人员": ["监督/法核人员信息", "监督证号", "监督证件有效期起", "监督证件有效期至", "是否法学专业","是否专职人员","法律职业资格证书","是否公职律师"],
    };

    const visibleFields = Array.from(
        new Set(selectedTypes.flatMap(type => orgFieldMap[type] || []))
    );

    Object.entries(fieldComponentMap).forEach(([fieldName, compId]) => {
        if (!compId) return;
        const isVisible = visibleFields.includes(fieldName);
        const behavior = isVisible ? 'NORMAL' : 'HIDDEN';
        const required = isVisible;
        const comp = self.$$m(compId);
        comp.props.behavior.value = behavior;
        self.$$m(compId).props.validationEnabled = required;
    });
}
